package com.xiaoshuidi.cloud.module.report.dal.mapper.datamanage;

import com.xiaoshuidi.cloud.framework.mybatis.core.mapper.BaseMapperX;
import com.xiaoshuidi.cloud.module.report.controller.datamanage.vo.DamagesStatistics;
import com.xiaoshuidi.cloud.module.report.controller.datamanage.vo.RmptyRoomStatisticsRespVO;
import com.xiaoshuidi.cloud.module.report.controller.datamanage.vo.RoomRateStatisticsVO;
import com.xiaoshuidi.cloud.module.report.dal.DO.RoomHouseDO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.math.BigDecimal;
import java.time.LocalDate;
import java.util.List;

@Mapper
public interface RoomStatisticsMapper extends BaseMapperX<RoomHouseDO> {
    void insertData();

    RmptyRoomStatisticsRespVO emptyRoomStatistics(@Param("apartmentIds") List<Long> apartmentIds, @Param("includeModelMaintenanceRooms") Boolean includeModelMaintenanceRooms);

    List<RoomRateStatisticsVO> emptyRoomRateStatistics(@Param("apartmentIds") List<Long> apartmentIds, @Param("startDate") LocalDate startDate, @Param("endDate") LocalDate endDate);

    BigDecimal currentEmptyRoomRate(@Param("apartmentIds") List<Long> apartmentIds);

    List<DamagesStatistics> emptyRoomDamagesStatistics(@Param("apartmentIds") List<Long> apartmentIds, @Param("condition") String condition, @Param("startDate") LocalDate startDate, @Param("endDate") LocalDate endDate);
}
